package dao

import (
	"go_web_bubble/models"

	"gorm.io/gorm"
)

/**
dao层只负责查询数据，错误处理交给service
*/

// 创建一个待办事项
func InsertBubble(bubble *models.Bubble) *gorm.DB {
	return DB.Create(&bubble)
}

// 获取所有的待办事项
func GetAllBubble() (bubbleList []*models.Bubble, db *gorm.DB) {
	db = DB.Find(&bubbleList)
	return bubbleList, db
}

// 根据ID获取待办事项 id是写在路径中的，因此使用string
func GetBubbleByID(id string) (bubble *models.Bubble, db *gorm.DB) {
	bubble = new(models.Bubble)
	db = DB.Where("id=?", id).First(&bubble)
	return bubble, db
}

//更新待办事项状态
func UpdateBubble(id string) *gorm.DB {
	// 查一下当前该条数据的状态，再判断更新的状态
	return DB.Exec("update bubbles set status=abs(status-1) where id=?", id) //bool类型则用~status
	//return DB.Where("id=?", id).Update("status = ~status")
}

//根据ID删除待办事项
func DeleteBubbleByID(id string) *gorm.DB {
	return DB.Where("id=?", id).Delete(&models.Bubble{})
}
